home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CRESC / Variations / gen-variants-t < prev    next >
Lisp/Scheme  |  1996-12-31  |  941b  |  24 lines

  1. gen-variants-t seed number step symbol-pattern  
  2.  
  3. This is one of a series of functions able to generate a number of variations from a symbol-pattern. The 'theme' symbol-pattern is always stated first in the output followed sequentially by the number of variants.
  4.  
  5. (setq mel (gen-variants-t 0.341 3 nil '(a b c d)))
  6. --> (a b c d c b d e e f f f g e g f)
  7.  
  8. Each variant is transposed up one symbol position, (a b c d) becoming (b c d e) and so on. Use this to create templates for pick operations.
  9.  
  10. &optional step value allows the variation sequence to be entered as any point. For example:
  11.  
  12. (setq mel1 (gen-variants-t 0.341 3 3 '(a b c d)))
  13. --> (a b c d e d f g)
  14.  
  15. Or, more extreme:
  16.  
  17. (gen-variants-t 0.341 3 5 '(a b c d))
  18. --> (a b c d g f h i g h h h g e g f)  
  19.  
  20. Should you wish to remove the 'theme' from the output statement use the nthcdr function:
  21.  
  22. (setq mel2 (nthcdr 4 (gen-variants-t nil 3 nil '(a b c d))))
  23. --> (d c c d d c c f f e f d)
  24.